﻿using System;
using System.Globalization;
using System.Windows.Data;

namespace Uhi.Applications.FileAid.View
{
    #region EncodingConverter
    /// <summary>
    /// 文字列のエンコード名を表示名に変換する <see cref="IValueConverter"/>。
    /// </summary>
    [ValueConversion(typeof(string), typeof(string))]
    public class EncodingConverter : IValueConverter
    {
        #region Convert
        /// <summary>
        /// 値を変換する。
        /// </summary>
        /// <param name="value">BindingSource によって生成された値。</param>
        /// <param name="targetType">BindingTarget プロパティの型。</param>
        /// <param name="parameter">使用するコンバータパラメータ。</param>
        /// <param name="culture">コンバータで使用するカルチャ。</param>
        /// <returns>変換された値。</returns>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            switch (value as string)
            {
                case "IBM290":
                    return "EBCDIC";

                default:
                    return value as string;
            }
        }
        #endregion

        #region ConvertBack
        /// <summary>
        /// 値を変換する。
        /// </summary>
        /// <param name="value">BindingTarget によって生成される値。</param>
        /// <param name="targetType">変換後の型。</param>
        /// <param name="parameter">使用するコンバータパラメータ。</param>
        /// <param name="culture">コンバータで使用するカルチャ。</param>
        /// <returns>変換された値。</returns>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            switch (value as string)
            {
                case "EBCDIC":
                    return "IBM290";

                default:
                    return value as string;
            }
        }
        #endregion
    }
    #endregion
}
